import axios from 'axios';

// 创建 axios 实例
const request = axios.create({
    baseURL: 'http://127.0.0.1:3001', // 请求的基准 URL
    timeout: 30000, // 请求超时时间
});

// 请求拦截器
request.interceptors.request.use(
    (config) => {
        // 在发送请求之前做些什么，例如添加 Token
        config.headers['Authorization'] = 'Bearer your-token';
        return config;
    },
    (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 响应拦截器
request.interceptors.response.use(
    (response) => {
        // 对响应数据做点什么
        return response.data; // 假设后端返回的数据是 { code: 0, data: ... }，直接返回 data
    },
    (error) => {
        // 对响应错误做点什么
        if (error.response) {
            // 请求已发出，但服务器响应的状态码不在 2xx 范围内
            switch (error.response.status) {
                case 401:
                    // Token 过期等处理
                    break;
                case 404:
                    // 资源未找到等处理
                    break;
                // 其他状态码的处理
            }
        }
        return Promise.reject(error);
    }
);

// 封装请求方法
const get = (url, params) => request.get(url, { params });
const post = (url, data) => request.post(url, data);

export default request;